

#ifndef PLUGININTERFACE_H
#define PLUGININTERFACE_H

#include <QObject>
#include <QWidget>
#include <QString>

class PluginInterface : public QObject {
    Q_OBJECT
public: /*get*/
    virtual ~PluginInterface() {};
    virtual QString name() const = 0;
    virtual QString version() const = 0;
    virtual QString developer() const = 0;
    virtual QString date() const = 0;
    virtual QString description() const = 0;
    virtual QWidget* getWidget() = 0;

public: /*set*/
    virtual void initWidget(QWidget*parent = nullptr) = 0;
    virtual void setPluginIcon(QIcon& icon) = 0;
    virtual void setWorkSpace(QString& dir) = 0;

};

QT_BEGIN_NAMESPACE
Q_DECLARE_INTERFACE(PluginInterface, "Com.Laserplane.PluginInterface/1.0")
QT_END_NAMESPACE

#endif // PLUGININTERFACE_H
